/**
 * robotWalk(), 机器人走网格， m * n 个网格， 从上到下
 *  解题思路:
 *          1. 可以走的方式: 走x轴， 走y轴。
 *          2. 找到对应的关系， nn的走法， 可以是n(n-1) 和 (n-1)n 的走法加起来。
 *          3. 最后， 循环长度在m和n， 输出， 这里有点需要注意的是长宽不是一样的话，行列 需要分开计算。
 *
 */

const uniquePaths = function (m, n) {
    if (m === 1 && n === 1) return 1;
    // 这里fill满一个二维数组
    let data = [], rows = [0];
    for (let i = 0; i < n - 1; i++) {
        rows.push(1);
    }
    data.push(rows);
    for (let i = 0; i < m - 1; i++) {
        data.push([1]);
    }
    for (let i = 1; i < m; i++) {
        for (let j = 1; j < n; j++) {
            data[i][j] = data[i - 1][j] + data[i][j - 1];
        }
    }
    return data[m - 1][n - 1];
}

const m = 2;
const n = 2;
console.log(uniquePaths(3, 7));
